#ifndef LEVELS_H_INCLUDED
#define LEVELS_H_INCLUDED

#include "SDL/SDL.h"
#include "mytext.h"
#include "mygrafx.h"
#include "myaudio.h"
#include "Player.h"
#include "Enemy.h"
#include "Bullet.h"
#include <string>
#include <iostream>

using namespace std;

class Levels
{
    protected:
        int level_end_point,
            level_start_point,
            player_level_x,
            player_screen_x,
            bgY,
            bgX1,
            bgX2,
            bgX3;

        Player player;
        Enemy_control enemys;
        Bullets_control bullets;

        MyAudio *music;

        bool level_alive,
             restart_level,
             scrolling_right;

    protected:
        virtual void detect_bullet_firing() {}

    public:
        Levels() { music = new MyAudio(); }
        virtual ~Levels() { delete music; }

        virtual void draw() {}
        virtual void start_game() {}
        virtual void moveleft() {}
        virtual void moveright() {}
        virtual void moveup() {}
        virtual void movedown() {}
        virtual void attack() {}

        void Set_scrolling_right( bool right ) { scrolling_right = right; }
        bool Get_scrolling_right() { return scrolling_right; }

        virtual void Set_player_main_floor_y( int main_floor_y ) {}
        virtual void Reset_jump_spd() {}

        void Restart_level() { restart_level = true; level_alive = false; }
        bool check_restart_level() { return restart_level; }
        bool check_level_alive() { return level_alive; }
        int getPlayerHealth(){return player.Get_health();}

};


#endif // LEVELS_H_INCLUDED
